import Image, ImageDraw, ImageFont, math

class Vector:
    "Esta classe define vectres e as suas caractriaticas"
    def __init__(self, xi, yi, xf, yf):
        self.vec = (xf-xi, yf-yi)
        self.norma = (self.vec[0]**2)+(self.vec[1]**2)**0.5
        self.norma2 = self.norma**2
        self.imagem = Image.new("RGBA", (300, 350), (0,0,0))

    def produtoesc(self, vec):
        self.imagem = Image.new("RGBA", (300, 350), (0,0,0))
        self.imagem.putalpha(0)
        desenho = ImageDraw.Draw(self.imagem)
        letra = ImageFont.load_default()
        produto = (int(self.vec[0])*vec.vec[0])+(int(self.vec[1])*vec.vec[1])
        desenho.text((25,301),"Produto escalar = " + str(produto), font = letra, fill = (0,0,0))
        return self.imagem, produto

    def angl(self, vec):
        self.imagem = Image.new("RGBA", (300, 350), (0,0,0))
        angl = 1/math.cos(self.produtoesc(vec)[1]/(self.norma*vec.norma))
        self.imagem.putalpha(0)
        desenho = ImageDraw.Draw(self.imagem)
        letra = ImageFont.load_default()
        desenho.text((25,301),"Angulo = " + str(angl), font = letra, fill = (0,0,0))
        return self.imagem, angl
